Club 80 Info Nr.30 S.30

Nachtrag zum Banker

Alexander Schmid

Sollte es wahr sein, daß bis jetzt außer Arnulf Sopp und mir noch niemand Probleme mit dem Banker von Helmut Bernhardt hatte? Keine unmotivierten Abstürze oder Aufhänger? Na gut. Vielleicht hängt das Auftreten auch etwas mit der Taktgeschindigkeit zusammen und die ist bei uns halt etwas höher. Trotzdem hat die Schaltung einen echten Fehler, den ich hier mit freundlicher Genehmigung von Helmut breittreten darf.

Nach über einem Jahr Suchen und Ärgern habe ich ihn endlich gefunden. Der Käfer besteht darin, daß am 74LS74 auf dem Banker die Pins 11 und 12 vertauscht sind, was auf einen Druckfehler in einer alten c't zurückgeht, aus der Helmut einen Teil der Schaltung übernommen hat. Da vergleicht man immer wieder das Layout mit dem Schaltplan, wundert sich, daß alles stimmt und trotzdem nichts geht und dann sowas. Diese Verwechselung hat die unangenehme Folge, daß der Refresh für die dynamischen RAMs nicht richtig funktioniert und die Bits unter Umständen nach Lust und Laune umkippen. Beim TRS80/ Genie unter NEWDOS und GDOS macht sich das im Normalfall nicht bemerkbar, weil der Prozessor dort durch die Interrupts kreuz und quer durch's RAM springt und so schon alleine durch die Speicherzugriffe während der Interruptroutinen für eine ausreichende Erfrischung sorgt. Wenn die Interrupts aber abgeschaltet sind, was z.B. bei mir unter CP/M der Fall war, kann es Ärger geben, wenn z.B. eine Schleife zu kurz wird.

Klarheit kann man sich mit folgendem Programm schaffen:


	ORG	6000h		;oder sonstwo

start	DI			;keinen Mogelrefresh machen
	LD	A,8		;Zähler
	LD	B,A
	LD	C,A
Loop	INC	C
	JR	NZ,loop		;innere Schleife
	INC	B
	JR	NZ,loop
	INC	A
	JR	NZ,loop		;äußere Schleife
	JP	4400h		;ins DOS
	END start

Durch die kurzen Schleifen bleibt der Speicherzugriff auf wenige Adressen beschränkt und der ganze Rest kann nur durch die Logik auf dem Banker behandelt werden. Wenn sich der Banker nach 1-2 Wochen noch nicht wieder gemeldet hat, könnt Ihr davon ausgehen, daß im restlichen RAM nur noch Schrott steht, womit sich auch das DOS verabschiedet hat. Nach dem Neubooten dürfte dann überall nur noch wirres Zeug stehen, was Ihr mit Debug o.ä. überprüfen könnt. Wenn alles stimmt, sollte nach ungefähr zwei Minuten wieder das DOS-Ready erscheinen und der Rest des Speicherinhalts unverändert sein. Wem das zu lange dauert, der kann A mit einem größeren Wert laden, wobei es aber auch wieder nicht zu schnell gehen darf, weil die RAMs, wenn sie einem guten Tag haben, durchaus ein paar Sekunden stabil sein können. Die paar Minuten sollte das doch wert sein. Zur Überprüfung könnt Ihr vorher noch irgendein Programm in die RAMdisk kopieren, die ja denselben Speicher benutzt. Wenn das Programm nachher noch läuft, ist mit ziemlicher Sicherheit alles in Ordnung. Wenn nicht, solltet Ihr schnellstens den Lötkolben heizen.